﻿#region Using Directives

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Csla;

#endregion

namespace MarketPulse.BusinessLogic.Common
{
    /// <summary>
    /// Criteria class that allows a Program to be uniquely identified.
    /// </summary>
    [Serializable]
    public class ProgramCriteria : CriteriaBase<ProgramCriteria>
    {

        #region Constructors

            /// <summary>
            /// Default constructor for this class
            /// </summary>
            /// <param name="programGUID">The GUID of the program to associate with this criteria</param>            
            public ProgramCriteria(Guid programGUID)
            {
                ProgramGUID = programGUID;
            }

        #endregion

        #region Properties

            /// <summary>
            /// This is the unique identifier used to identify the user being selected as part of this criteria
            /// </summary>
            public static PropertyInfo<Guid> mProgramGUIDProperty = RegisterProperty<Guid>(p => p.ProgramGUID);
            /// <summary>
            /// This is the unique identifier used to identify the user being selected as part of this criteria
            /// </summary>
            public Guid ProgramGUID
            {
                get { return ReadProperty(mProgramGUIDProperty); }
                private set { LoadProperty(mProgramGUIDProperty, value); }
            }

        #endregion

    }
}
